package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-采购退料物料明细其他信息对象 erp_king_procure_refund_material_detail_info
 *
 * @author cxl
 * @date 2024-07-16
 */
@TableName ("erp_king_procure_refund_material_detail_info")
@ApiModel (value = "采购退料物料明细其他信息", description = "金蝶-采购退料物料明细其他信息")
@Data
public class KingProcureRefundMaterialDetailEntity{

        /** 主键id */
        @TableId (type = IdType.INPUT)
        private String id;

        /** 采购退料单表id */
        @ApiModelProperty ("采购退料单表id")
        @TableField ("procure_refund_id")
        @Excel (name = "采购退料单表id")
        private String procureRefundId;

        /** 采购退料单物料明细表id */
        @ApiModelProperty ("采购退料单物料明细表id")
        @TableField ("procure_refund_material_id")
        @Excel (name = "采购退料单物料明细表id")
        private String procureRefundMaterialId;

        /** 物料id */
        @ApiModelProperty ("物料id")
        @TableField ("material_id")
        @Excel (name = "物料id")
        private String materialId;

        /** 物料编码 */
        @ApiModelProperty ("物料编码")
        @TableField ("material_code")
        @Excel (name = "物料编码")
        private String materialCode;

        /** 物料名称 */
        @ApiModelProperty ("物料名称")
        @TableField ("material_name")
        @Excel (name = "物料名称")
        private String materialName;

        /** BOM版本 */
        @ApiModelProperty ("BOM版本")
        @TableField ("bom_ver")
        @Excel (name = "BOM版本")
        private String bomVer;

        /** 批号 */
        @ApiModelProperty ("批号")
        @TableField ("batch_num")
        @Excel (name = "批号")
        private String batchNum;

        /** 供应商批号 */
        @ApiModelProperty ("供应商批号")
        @TableField ("supplier_batch_num")
        @Excel (name = "供应商批号")
        private String supplierBatchNum;

        /** 生产日期 */
        @ApiModelProperty ("生产日期")
        @TableField ("manufacture_time")
        @JsonFormat (pattern = "yyyy-MM-dd")
        @Excel (name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
        private Date manufactureTime;

        /** 保质期 */
        @ApiModelProperty ("保质期")
        @TableField ("warranty_time")
        @JsonFormat (pattern = "yyyy-MM-dd")
        @Excel (name = "保质期", width = 30, dateFormat = "yyyy-MM-dd")
        private Date warrantyTime;

        /** 保质期单位 */
        @ApiModelProperty ("保质期单位")
        @TableField ("warranty_unit")
        @Excel (name = "保质期单位")
        private String warrantyUnit;

        /** 有效期至 */
        @ApiModelProperty ("有效期至")
        @TableField ("valid_to")
        @JsonFormat (pattern = "yyyy-MM-dd")
        @Excel (name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
        private Date validTo;

        /** 在架寿命期 */
        @ApiModelProperty ("在架寿命期")
        @TableField ("shelf_life_cycle")
        @Excel (name = "在架寿命期")
        private String shelfLifeCycle;

        /** 辅单位 */
        @ApiModelProperty ("辅单位")
        @TableField ("auxiliary_unit")
        @Excel (name = "辅单位")
        private String auxiliaryUnit;

        /** 实退数量 */
        @ApiModelProperty ("实退数量")
        @TableField ("refund_num")
        @Excel (name = "实退数量")
        private String refundNum;

        /** 税率 */
        @ApiModelProperty ("税率")
        @TableField ("tax_rate")
        @Excel (name = "税率")
        private String taxRate;

        /** 单价 */
        @ApiModelProperty ("单价")
        @TableField ("price")
        @Excel (name = "单价")
        private String price;

        /** 含税单价 */
        @ApiModelProperty ("含税单价")
        @TableField ("contains_tax_price")
        @Excel (name = "含税单价")
        private String containsTaxPrice;

        /** 折扣率 */
        @ApiModelProperty ("折扣率")
        @TableField ("discount_rate")
        @Excel (name = "折扣率")
        private String discountRate;

        /** 净价 */
        @ApiModelProperty ("净价")
        @TableField ("net_amount")
        @Excel (name = "净价")
        private String netAmount;

        /** 单价折扣 */
        @ApiModelProperty ("单价折扣")
        @TableField ("price_discount")
        @Excel (name = "单价折扣")
        private String priceDiscount;

        /** 折扣额 */
        @ApiModelProperty ("折扣额")
        @TableField ("discount_amount")
        @Excel (name = "折扣额")
        private String discountAmount;

        /** 税额 */
        @ApiModelProperty ("税额")
        @TableField ("tax_amount")
        @Excel (name = "税额")
        private String taxAmount;

        /** 金额 */
        @ApiModelProperty ("金额")
        @TableField ("amount_money")
        @Excel (name = "金额")
        private String amountMoney;

        /** 价税合计 */
        @ApiModelProperty ("价税合计")
        @TableField ("total_tax_price")
        @Excel (name = "价税合计")
        private String totalTaxPrice;

        /** 税额(本位币) */
        @ApiModelProperty ("税额(本位币)")
        @TableField ("tax_amount_base")
        @Excel (name = "税额(本位币)")
        private String taxAmountBase;

        /** 金额（本位币） */
        @TableField ("amount_money_base")
        @ApiModelProperty ("金额(本位币)")
        @Excel (name = "金额(本位币)")
        private String amountMoneyBase;

        /** 价税合计(本位币) */
        @ApiModelProperty ("价税合计(本位币)")
        @TableField ("total_tax_price_base")
        @Excel (name = "价税合计(本位币)")
        private String totalTaxPriceBase;

        /** 价格系数 */
        @ApiModelProperty ("价格系数")
        @TableField ("price_coefficient")
        @Excel (name = "价格系数")
        private String priceCoefficient;

        /** 计价单位 */
        @ApiModelProperty ("计价单位")
        @TableField ("pricing_unit")
        @Excel (name = "计价单位")
        private String pricingUnit;

        /** 计价数量 */
        @ApiModelProperty ("计价数量")
        @TableField ("pricing_num")
        @Excel (name = "计价数量")
        private String pricingNum;

        /** 价格上限 */
        @ApiModelProperty ("价格上限")
        @TableField ("price_cap")
        @Excel (name = "价格上限")
        private String priceCap;

        /** 价格下限 */
        @ApiModelProperty ("价格下限")
        @TableField ("price_floor")
        @Excel (name = "价格下限")
        private String priceFloor;

        /** 分录价目表 */
        @ApiModelProperty ("分录价目表")
        @TableField ("entry_price_list")
        @Excel (name = "分录价目表")
        private String entryPriceList;

        /** 系统定价 */
        @ApiModelProperty ("系统定价")
        @TableField ("system_pricing")
        @Excel (name = "系统定价")
        private String systemPricing;

        /** 费用项目表code */
        @ApiModelProperty ("费用项目表code")
        @TableField ("fee_info_code")
        @Excel (name = "费用项目表code")
        private String feeInfoCode;

        /** 已开票数量 */
        @ApiModelProperty ("已开票数量")
        @TableField ("invoiced_num")
        @Excel (name = "已开票数量")
        private String invoicedNum;

        /** 开票结束状态 */
        @ApiModelProperty ("开票结束状态")
        @TableField ("invoicing_completed_status")
        @Excel (name = "开票结束状态")
        private String invoicingCompletedStatus;

        /** 需求跟踪号 */
        @ApiModelProperty ("需求跟踪号")
        @TableField ("require_tracking_code")
        @Excel (name = "需求跟踪号")
        private String requireTrackingCode;

        /** 计划跟踪号 */
        @ApiModelProperty ("计划跟踪号")
        @TableField ("plan_tracking_code")
        @Excel (name = "计划跟踪号")
        private String planTrackingCode;

        /** 源单类型 */
        @ApiModelProperty ("源单类型")
        @TableField ("source_doc_type")
        @Excel (name = "源单类型")
        private String sourceDocType;

        /** 源单单号 */
        @ApiModelProperty ("源单单号")
        @TableField ("source_doc_code")
        @Excel (name = "源单单号")
        private String sourceDocCode;

        /** 订单单号 */
        @ApiModelProperty ("订单单号")
        @TableField ("order_code")
        @Excel (name = "订单单号")
        private String orderCode;

        /** 业务流程 */
        @ApiModelProperty ("业务流程")
        @TableField ("business_process")
        @Excel (name = "业务流程")
        private String businessProcess;

        /** 应付关闭状态 */
        @ApiModelProperty ("应付关闭状态")
        @TableField ("payable_close_status")
        @Excel (name = "应付关闭状态")
        private String payableCloseStatus;

        /** 应付关闭日期 */
        @ApiModelProperty ("应付关闭日期")
        @TableField ("payable_close_time")
        @JsonFormat (pattern = "yyyy-MM-dd")
        @Excel (name = "应付关闭日期", width = 30, dateFormat = "yyyy-MM-dd")
        private Date payableCloseTime;

        /** 规格型号 */
        @ApiModelProperty ("规格型号")
        @TableField ("material_model")
        @Excel (name = "规格型号")
        private String materialModel;

        /** 序列号单位 */
        @ApiModelProperty ("序列号单位")
        @TableField ("serial_code_unit")
        @Excel (name = "序列号单位")
        private String serialCodeUnit;

        /** 序列号单位数量 */
        @ApiModelProperty ("序列号单位数量")
        @TableField ("serial_code_unit_num")
        @Excel (name = "序列号单位数量")
        private String serialCodeUnitNum;

        /** 序列号上传 */
        @ApiModelProperty ("序列号上传")
        @TableField ("serial_code_upload")
        @Excel (name = "序列号上传")
        private String serialCodeUpload;

        @ApiModelProperty ("创建人")
        @TableField ("create_by")
        @Excel (name = "创建人")
        private String createBy;

        /** 创建时间 */
        @ApiModelProperty ("创建时间")
        @TableField ("create_time")
        @JsonFormat (pattern = "yyyy-MM-dd")
        @Excel (name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date createTime;

        @ApiModelProperty ("修改人")
        @TableField ("update_by")
        @Excel (name = "修改人")
        private String updateBy;

        @ApiModelProperty ("修改日期")
        @TableField ("update_time")
        @JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss" )
        @Excel (name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date updateTime;

        /** 是否可用 */
        @ApiModelProperty ("是否可用")
        @TableField ("is_used")
        @Excel (name = "是否可用")
        @TableLogic
        private Integer isUsed;

        @ApiModelProperty("物料明细序列号信息")
        @TableField(exist = false)
        private List<KingProcureRefundMaterialDetailSerialEntity> materialDetailSerials;

}
